<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>

  <body>
    <script>
      /*
            最重要的是 正则的 规则表示
            使用 很多的 元字符  表示 规则

            特定
                \d  表示数字  \D
                \w  表示数字+字母+_  \W
                \s  表示空白 \S


            数量
                *       任意次
                +       至少1次
                ?       0次或者1次

                {n}     n次
                {n,}    至少n次
                {n,m}   n到m次

            开头和结尾
                ^ 开关
                $ 结尾

            范围
                [0-9]   数字
                [a-zA-Z]   字母
                [5-9]   匹配5到9之间的单个数字
                [af7]   匹配a/f/7中的一个

                取反
                [^范围]

                转义
                [特殊符号]

            其它
                \  转义
                .  匹配任意单个字符
                |  或者
                () 分组
        */

      // 匹配数字
      // let regNum = /\d/
      // console.log(regNum.test('abcdef'));
      // console.log(regNum.test('abc1def'));


      // 匹配 数字+字母+_
      // let userName = 'ligoudan123'
      // let regName = /\w/
      // console.log(regName.test(userName));
      // console.log(regName.test('&^^%$$^'));



      // 匹配次数
      // let reg = /\d+/
      // console.log(reg.test('abc'));
      // console.log(reg.test('1abc'));
      // console.log(reg.test('12abc'));

      // let reg = /\d{11}/
      // console.log(reg.test('123'));
      // console.log(reg.test('12345678901'));
      // console.log(reg.test('a23456789012'));


      // 匹配开关和结尾
      // let reg1 = /^1/
      // console.log(reg1.test('abc'));
      // console.log(reg1.test('a1bc'));
      // console.log(reg1.test('1abc'));
      // let reg2 = /1$/
      // console.log(reg2.test('abc'));
      // console.log(reg2.test('abc1'));


      // 手机号
      // let regPhone = /^1\d{10}$/
      // console.log(regPhone.test('18855262237'));
      // console.log(regPhone.test('18855262237a'));


      // 自定义 范围匹配
      // let reg = /[0-9a-zA-Z]/
      // console.log(reg.test('123abc'));
      // console.log(reg.test('@#$%^*('));

      // let reg = /[^0-9]/
      // console.log(reg.test('1'));


      // 转义
      // let reg = /[$]/
      // console.log(reg.test('$123'));
      // console.log(reg.test('123'));

      // let reg = /\$/
      // console.log(reg.test('$123'));


      // 匹配任意的单个字符
      // let reg = /./
      // console.log(reg.test('&'));
      // console.log(reg.test('1'));
      // console.log(reg.test('a'));
      // console.log(reg.test('中'));


      // 或者
      // let reg = /a|b/
      // console.log(reg.test('a'));
      // console.log(reg.test('b'));
      // console.log(reg.test('c'));


      // 分组
      // let reg = /a(b|c)d/
      // let reg = /(ab)|(cd)/
      // console.log(reg.test('ab'));
      // console.log(reg.test('cd'));
      // console.log(reg.test('ad'));
    </script>
  </body>

</html>